Object-Level, Field-Level, এবং Record-Level Security Salesforce-এ ডেটা অ্যাক্সেস নিয়ন্ত্রণের তিনটি স্তর, যা ব্যবহারকারীর প্রোফাইল, ভূমিকা, এবং অনুমতি অনুযায়ী ডেটা অ্যাক্সেস নিয়ন্ত্রণ করে। এই তিনটি স্তরের নিরাপত্তা নিশ্চিত করে যে ব্যবহারকারী শুধু প্রয়োজনীয় এবং অনুমোদিত ডেটা দেখতে এবং অ্যাক্সেস করতে পারবেন।
Object-Level Security ব্যবহারকারীর নির্দিষ্ট অবজেক্টে (যেমন Account, Contact, Opportunity ইত্যাদি) অ্যাক্সেস নির্ধারণ করে। এই নিরাপত্তা স্তরটি নির্ধারণ করে যে ব্যবহারকারী কোন অবজেক্টে CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন।
Apex কোডে Object-Level Security যাচাই করতে Schema.sObjectType.<Object>.isAccessible()
, isCreateable()
, isUpdateable()
, এবং isDeletable()
মেথড ব্যবহার করা হয়।
public class AccountService {
public void createAccount(Account acc) {
if (Schema.sObjectType.Account.isCreateable()) {
insert acc;
} else {
throw new CustomException('Insufficient permissions to create Account.');
}
}
}
Field-Level Security নির্দিষ্ট ফিল্ডের উপর অ্যাক্সেস নিয়ন্ত্রণ করে, যা নির্ধারণ করে ব্যবহারকারী কোন ফিল্ড দেখতে, তৈরি করতে, আপডেট করতে পারবেন। এটি Object-Level Security এর উপর একটি বাড়তি স্তর যা ফিল্ড ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ করে।
Apex কোডে Field-Level Security যাচাই করতে Schema.sObjectType.<Object>.fields.<Field>.isAccessible()
, isCreateable()
, এবং isUpdateable()
মেথড ব্যবহার করা হয়।
public class AccountService {
public void updateAccountIndustry(Account acc) {
if (Schema.sObjectType.Account.fields.Industry.isUpdateable()) {
update acc;
} else {
throw new CustomException('Insufficient permissions to update Industry field.');
}
}
}
Industry
ফিল্ড আপডেট করার অনুমতি আছে কি না।Record-Level Security নির্দিষ্ট রেকর্ডের উপর অ্যাক্সেস নিয়ন্ত্রণ করে। এটি নির্ধারণ করে ব্যবহারকারী কোন রেকর্ড দেখতে, সম্পাদনা করতে বা মুছে ফেলতে পারবেন। Record-Level Security ডেটা শেয়ারিং মডেলের উপর ভিত্তি করে কাজ করে এবং প্রোফাইল, পারমিশন সেট, বা রোল হায়ারার্কির উপর নির্ভর করে।
Record-Level Security যাচাই করতে Apex ক্লাসে with sharing বা without sharing কিওয়ার্ড ব্যবহার করা হয়।
public with sharing class AccountService {
public List<Account> getUserAccounts() {
return [SELECT Id, Name FROM Account];
}
}
with sharing
কিওয়ার্ড ব্যবহার করে নিশ্চিত করা হয়েছে যে ক্লাসটি শেয়ারিং নিয়ম মেনে চলবে এবং শুধু ব্যবহারকারীর অনুমোদিত রেকর্ডগুলোই অ্যাক্সেস করতে পারবে।নিরাপত্তা স্তর | উদ্দেশ্য | কনফিগারেশন উপায় | Apex কোড যাচাই |
---|---|---|---|
Object-Level Security | অবজেক্টের উপর CRUD অপারেশন নিয়ন্ত্রণ করে | Profiles এবং Permission Sets | isCreateable(), isAccessible(), isUpdateable() |
Field-Level Security | নির্দিষ্ট ফিল্ডে এক্সেস নিয়ন্ত্রণ করে | Profiles এবং Permission Sets | isAccessible(), isCreateable(), isUpdateable() |
Record-Level Security | নির্দিষ্ট রেকর্ডে এক্সেস নিয়ন্ত্রণ করে | OWD, Role Hierarchies, Sharing Rules | with sharing, without sharing |
Object-Level এবং Field-Level Security যাচাই করুন: প্রতিটি SOQL এবং DML অপারেশনের আগে Object-Level এবং Field-Level Security যাচাই করুন।
if (Schema.sObjectType.Account.isAccessible() && Schema.sObjectType.Account.fields.Name.isAccessible()) {
Account acc = [SELECT Id, Name FROM Account LIMIT 1];
}
with sharing ব্যবহার করুন: যেখানে সম্ভব with sharing
ব্যবহার করুন, যাতে ক্লাসে শেয়ারিং নিয়ম মেনে ডেটা অ্যাক্সেস নিশ্চিত করা যায়।
Exception Handling: যথাযথ Exception Handling যুক্ত করুন এবং অনুমতি না থাকলে ব্যবহারকারীকে Custom Error Message প্রদান করুন।
Minimal Permissions: প্রোফাইল এবং পারমিশন সেটে ন্যূনতম প্রয়োজনীয় পারমিশন প্রদান করুন।
Custom Permissions ব্যবহার করুন: কোডের নির্দিষ্ট অংশে এক্সেস নিয়ন্ত্রণের জন্য Custom Permissions ব্যবহার করতে পারেন।
Object-Level, Field-Level, এবং Record-Level Security Salesforce প্ল্যাটফর্মে ডেটা অ্যাক্সেস নিয়ন্ত্রণের বিভিন্ন স্তর, যা ডেটা সুরক্ষা নিশ্চিত করে। প্রোফাইল, পারমিশন সেট, এবং শেয়ারিং নিয়ম ব্যবহার করে প্রতিটি স্তরের নিরাপত্তা নিশ্চিত করা হয়। Object-Level Security নির্দিষ্ট অবজেক্টে CRUD অ্যাক্সেস নিয়ন্ত্রণ করে, Field-Level Security নির্দিষ্ট ফিল্ডের উপর ভিত্তি করে এক্সেস নিয়ন্ত্রণ করে, এবং Record-Level Security নির্দিষ্ট রেকর্ডের উপর ভিত্তি করে ডেটা এক্সেস নিয়ন্ত্রণ নিশ্চিত করে। নিরাপদ ও সুরক্ষিত কোড নিশ্চিত করতে এই সিকিউরিটি নিয়মগুলো মেনে Apex কোড লিখতে হবে।
common.read_more